/*     */ package com.jcraft.jzlib;
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ final class InfCodes
/*     */ {
/*  39 */   private static final int[] inflate_mask = { 0, 1, 
/*  40 */     3, 7, 15, 31, 63, 
/*  41 */     127, 255, 511, 1023, 2047, 
/*  42 */     4095, 8191, 16383, 32767, 65535 };
/*     */   
/*     */   private static final int Z_OK = 0;
/*     */   
/*     */   private static final int Z_STREAM_END = 1;
/*     */   
/*     */   private static final int Z_NEED_DICT = 2;
/*     */   
/*     */   private static final int Z_ERRNO = -1;
/*     */   
/*     */   private static final int Z_STREAM_ERROR = -2;
/*     */   
/*     */   private static final int Z_DATA_ERROR = -3;
/*     */   
/*     */   private static final int Z_MEM_ERROR = -4;
/*     */   
/*     */   private static final int Z_BUF_ERROR = -5;
/*     */   
/*     */   private static final int Z_VERSION_ERROR = -6;
/*     */   
/*     */   private static final int START = 0;
/*     */   
/*     */   private static final int LEN = 1;
/*     */   
/*     */   private static final int LENEXT = 2;
/*     */   private static final int DIST = 3;
/*     */   private static final int DISTEXT = 4;
/*     */   private static final int COPY = 5;
/*     */   private static final int LIT = 6;
/*     */   private static final int WASH = 7;
/*     */   private static final int END = 8;
/*     */   private static final int BADCODE = 9;
/*     */   int mode;
/*     */   int len;
/*     */   int[] tree;
/*  77 */   int tree_index = 0;
/*     */   
/*     */   int need;
/*     */   
/*     */   int lit;
/*     */   
/*     */   int get;
/*     */   
/*     */   int dist;
/*     */   
/*     */   byte lbits;
/*     */   
/*     */   byte dbits;
/*     */   
/*     */   int[] ltree;
/*     */   int ltree_index;
/*     */   int[] dtree;
/*     */   int dtree_index;
/*     */   
/*     */   void init(int bl, int bd, int[] tl, int tl_index, int[] td, int td_index, ZStream z)
/*     */   {
/*  98 */     this.mode = 0;
/*  99 */     this.lbits = ((byte)bl);
/* 100 */     this.dbits = ((byte)bd);
/* 101 */     this.ltree = tl;
/* 102 */     this.ltree_index = tl_index;
/* 103 */     this.dtree = td;
/* 104 */     this.dtree_index = td_index;
/* 105 */     this.tree = null;
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */   int proc(InfBlocks s, ZStream z, int r)
/*     */   {
/* 113 */     int b = 0;
/* 114 */     int k = 0;
/* 115 */     int p = 0;
/*     */     
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/* 122 */     p = z.next_in_index;
/* 123 */     int n = z.avail_in;
/* 124 */     b = s.bitb;
/* 125 */     k = s.bitk;
/* 126 */     int q = s.write;
/* 127 */     int m = q < s.read ? s.read - q - 1 : s.end - q;
/*     */     
/*     */     for (;;)
/*     */     {
/* 131 */       switch (this.mode)
/*     */       {
/*     */       case 0: 
/* 134 */         if ((m >= 258) && (n >= 10))
/*     */         {
/* 136 */           s.bitb = b;
/* 137 */           s.bitk = k;
/* 138 */           z.avail_in = n;
/* 139 */           z.total_in += p - z.next_in_index;
/* 140 */           z.next_in_index = p;
/* 141 */           s.write = q;
/* 142 */           r = inflate_fast(this.lbits, this.dbits, this.ltree, this.ltree_index, this.dtree, 
/* 143 */             this.dtree_index, s, z);
/*     */           
/* 145 */           p = z.next_in_index;
/* 146 */           n = z.avail_in;
/* 147 */           b = s.bitb;
/* 148 */           k = s.bitk;
/* 149 */           q = s.write;
/* 150 */           m = q < s.read ? s.read - q - 1 : s.end - q;
/*     */           
/* 152 */           if (r != 0) {
/* 153 */             this.mode = (r == 1 ? 7 : 9);
/* 154 */             continue;
/*     */           }
/*     */         }
/* 157 */         this.need = this.lbits;
/* 158 */         this.tree = this.ltree;
/* 159 */         this.tree_index = this.ltree_index;
/*     */         
/* 161 */         this.mode = 1;
/*     */       case 1: 
/* 163 */         int j = this.need;
/*     */         
/* 165 */         while (k < j) {
/* 166 */           if (n != 0) {
/* 167 */             r = 0;
/*     */           }
/*     */           else {
/* 170 */             s.bitb = b;
/* 171 */             s.bitk = k;
/* 172 */             z.avail_in = n;
/* 173 */             z.total_in += p - z.next_in_index;
/* 174 */             z.next_in_index = p;
/* 175 */             s.write = q;
/* 176 */             return s.inflate_flush(z, r);
/*     */           }
/* 178 */           n--;
/* 179 */           b |= (z.next_in[(p++)] & 0xFF) << k;
/* 180 */           k += 8;
/*     */         }
/*     */         
/* 183 */         int tindex = (this.tree_index + (b & inflate_mask[j])) * 3;
/*     */         
/* 185 */         b >>>= this.tree[(tindex + 1)];
/* 186 */         k -= this.tree[(tindex + 1)];
/*     */         
/* 188 */         int e = this.tree[tindex];
/*     */         
/* 190 */         if (e == 0) {
/* 191 */           this.lit = this.tree[(tindex + 2)];
/* 192 */           this.mode = 6;
/*     */ 
/*     */         }
/* 195 */         else if ((e & 0x10) != 0) {
/* 196 */           this.get = (e & 0xF);
/* 197 */           this.len = this.tree[(tindex + 2)];
/* 198 */           this.mode = 2;
/*     */ 
/*     */         }
/* 201 */         else if ((e & 0x40) == 0) {
/* 202 */           this.need = e;
/* 203 */           this.tree_index = (tindex / 3 + this.tree[(tindex + 2)]);
/*     */ 
/*     */         }
/* 206 */         else if ((e & 0x20) != 0) {
/* 207 */           this.mode = 7;
/*     */         }
/*     */         else {
/* 210 */           this.mode = 9;
/* 211 */           z.msg = "invalid literal/length code";
/* 212 */           r = -3;
/*     */           
/* 214 */           s.bitb = b;
/* 215 */           s.bitk = k;
/* 216 */           z.avail_in = n;
/* 217 */           z.total_in += p - z.next_in_index;
/* 218 */           z.next_in_index = p;
/* 219 */           s.write = q;
/* 220 */           return s.inflate_flush(z, r);
/*     */         }
/*     */         break;
/* 223 */       case 2:  int j = this.get;
/*     */         
/* 225 */         while (k < j) {
/* 226 */           if (n != 0) {
/* 227 */             r = 0;
/*     */           }
/*     */           else {
/* 230 */             s.bitb = b;
/* 231 */             s.bitk = k;
/* 232 */             z.avail_in = n;
/* 233 */             z.total_in += p - z.next_in_index;
/* 234 */             z.next_in_index = p;
/* 235 */             s.write = q;
/* 236 */             return s.inflate_flush(z, r);
/*     */           }
/* 238 */           n--;
/* 239 */           b |= (z.next_in[(p++)] & 0xFF) << k;
/* 240 */           k += 8;
/*     */         }
/*     */         
/* 243 */         this.len += (b & inflate_mask[j]);
/*     */         
/* 245 */         b >>= j;
/* 246 */         k -= j;
/*     */         
/* 248 */         this.need = this.dbits;
/* 249 */         this.tree = this.dtree;
/* 250 */         this.tree_index = this.dtree_index;
/* 251 */         this.mode = 3;
/*     */       case 3: 
/* 253 */         int j = this.need;
/*     */         
/* 255 */         while (k < j) {
/* 256 */           if (n != 0) {
/* 257 */             r = 0;
/*     */           }
/*     */           else {
/* 260 */             s.bitb = b;
/* 261 */             s.bitk = k;
/* 262 */             z.avail_in = n;
/* 263 */             z.total_in += p - z.next_in_index;
/* 264 */             z.next_in_index = p;
/* 265 */             s.write = q;
/* 266 */             return s.inflate_flush(z, r);
/*     */           }
/* 268 */           n--;
/* 269 */           b |= (z.next_in[(p++)] & 0xFF) << k;
/* 270 */           k += 8;
/*     */         }
/*     */         
/* 273 */         int tindex = (this.tree_index + (b & inflate_mask[j])) * 3;
/*     */         
/* 275 */         b >>= this.tree[(tindex + 1)];
/* 276 */         k -= this.tree[(tindex + 1)];
/*     */         
/* 278 */         int e = this.tree[tindex];
/* 279 */         if ((e & 0x10) != 0) {
/* 280 */           this.get = (e & 0xF);
/* 281 */           this.dist = this.tree[(tindex + 2)];
/* 282 */           this.mode = 4;
/*     */ 
/*     */         }
/* 285 */         else if ((e & 0x40) == 0) {
/* 286 */           this.need = e;
/* 287 */           this.tree_index = (tindex / 3 + this.tree[(tindex + 2)]);
/*     */         }
/*     */         else {
/* 290 */           this.mode = 9;
/* 291 */           z.msg = "invalid distance code";
/* 292 */           r = -3;
/*     */           
/* 294 */           s.bitb = b;
/* 295 */           s.bitk = k;
/* 296 */           z.avail_in = n;
/* 297 */           z.total_in += p - z.next_in_index;
/* 298 */           z.next_in_index = p;
/* 299 */           s.write = q;
/* 300 */           return s.inflate_flush(z, r);
/*     */         }
/*     */         break;
/* 303 */       case 4:  int j = this.get;
/*     */         
/* 305 */         while (k < j) {
/* 306 */           if (n != 0) {
/* 307 */             r = 0;
/*     */           }
/*     */           else {
/* 310 */             s.bitb = b;
/* 311 */             s.bitk = k;
/* 312 */             z.avail_in = n;
/* 313 */             z.total_in += p - z.next_in_index;
/* 314 */             z.next_in_index = p;
/* 315 */             s.write = q;
/* 316 */             return s.inflate_flush(z, r);
/*     */           }
/* 318 */           n--;
/* 319 */           b |= (z.next_in[(p++)] & 0xFF) << k;
/* 320 */           k += 8;
/*     */         }
/*     */         
/* 323 */         this.dist += (b & inflate_mask[j]);
/*     */         
/* 325 */         b >>= j;
/* 326 */         k -= j;
/*     */         
/* 328 */         this.mode = 5;
/*     */       case 5: 
/* 330 */         int f = q - this.dist;
/* 331 */         while (f < 0) {
/* 332 */           f += s.end;
/*     */         }
/* 334 */         while (this.len != 0)
/*     */         {
/* 336 */           if (m == 0) {
/* 337 */             if ((q == s.end) && (s.read != 0)) {
/* 338 */               q = 0;
/* 339 */               m = q < s.read ? s.read - q - 1 : s.end - q;
/*     */             }
/* 341 */             if (m == 0) {
/* 342 */               s.write = q;
/* 343 */               r = s.inflate_flush(z, r);
/* 344 */               q = s.write;
/* 345 */               m = q < s.read ? s.read - q - 1 : s.end - q;
/*     */               
/* 347 */               if ((q == s.end) && (s.read != 0)) {
/* 348 */                 q = 0;
/* 349 */                 m = q < s.read ? s.read - q - 1 : s.end - q;
/*     */               }
/*     */               
/* 352 */               if (m == 0) {
/* 353 */                 s.bitb = b;
/* 354 */                 s.bitk = k;
/* 355 */                 z.avail_in = n;
/* 356 */                 z.total_in += p - z.next_in_index;
/* 357 */                 z.next_in_index = p;
/* 358 */                 s.write = q;
/* 359 */                 return s.inflate_flush(z, r);
/*     */               }
/*     */             }
/*     */           }
/*     */           
/* 364 */           s.window[(q++)] = s.window[(f++)];
/* 365 */           m--;
/*     */           
/* 367 */           if (f == s.end)
/* 368 */             f = 0;
/* 369 */           this.len -= 1;
/*     */         }
/* 371 */         this.mode = 0;
/* 372 */         break;
/*     */       case 6: 
/* 374 */         if (m == 0) {
/* 375 */           if ((q == s.end) && (s.read != 0)) {
/* 376 */             q = 0;
/* 377 */             m = q < s.read ? s.read - q - 1 : s.end - q;
/*     */           }
/* 379 */           if (m == 0) {
/* 380 */             s.write = q;
/* 381 */             r = s.inflate_flush(z, r);
/* 382 */             q = s.write;
/* 383 */             m = q < s.read ? s.read - q - 1 : s.end - q;
/*     */             
/* 385 */             if ((q == s.end) && (s.read != 0)) {
/* 386 */               q = 0;
/* 387 */               m = q < s.read ? s.read - q - 1 : s.end - q;
/*     */             }
/* 389 */             if (m == 0) {
/* 390 */               s.bitb = b;
/* 391 */               s.bitk = k;
/* 392 */               z.avail_in = n;
/* 393 */               z.total_in += p - z.next_in_index;
/* 394 */               z.next_in_index = p;
/* 395 */               s.write = q;
/* 396 */               return s.inflate_flush(z, r);
/*     */             }
/*     */           }
/*     */         }
/* 400 */         r = 0;
/*     */         
/* 402 */         s.window[(q++)] = ((byte)this.lit);
/* 403 */         m--;
/*     */         
/* 405 */         this.mode = 0;
/*     */       }
/*     */     }
/* 408 */     if (k > 7) {
/* 409 */       k -= 8;
/* 410 */       n++;
/* 411 */       p--;
/*     */     }
/*     */     
/* 414 */     s.write = q;
/* 415 */     r = s.inflate_flush(z, r);
/* 416 */     q = s.write;
/* 417 */     m = q < s.read ? s.read - q - 1 : s.end - q;
/*     */     
/* 419 */     if (s.read != s.write) {
/* 420 */       s.bitb = b;
/* 421 */       s.bitk = k;
/* 422 */       z.avail_in = n;
/* 423 */       z.total_in += p - z.next_in_index;
/* 424 */       z.next_in_index = p;
/* 425 */       s.write = q;
/* 426 */       return s.inflate_flush(z, r);
/*     */     }
/* 428 */     this.mode = 8;
/*     */     
/* 430 */     r = 1;
/* 431 */     s.bitb = b;
/* 432 */     s.bitk = k;
/* 433 */     z.avail_in = n;
/* 434 */     z.total_in += p - z.next_in_index;
/* 435 */     z.next_in_index = p;
/* 436 */     s.write = q;
/* 437 */     return s.inflate_flush(z, r);
/*     */     
/*     */ 
/*     */ 
/* 441 */     r = -3;
/*     */     
/* 443 */     s.bitb = b;
/* 444 */     s.bitk = k;
/* 445 */     z.avail_in = n;
/* 446 */     z.total_in += p - z.next_in_index;
/* 447 */     z.next_in_index = p;
/* 448 */     s.write = q;
/* 449 */     return s.inflate_flush(z, r);
/*     */     
/*     */ 
/* 452 */     r = -2;
/*     */     
/* 454 */     s.bitb = b;
/* 455 */     s.bitk = k;
/* 456 */     z.avail_in = n;
/* 457 */     z.total_in += p - z.next_in_index;
/* 458 */     z.next_in_index = p;
/* 459 */     s.write = q;
/* 460 */     return s.inflate_flush(z, r);
/*     */   }
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   void free(ZStream z) {}
/*     */   
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   int inflate_fast(int bl, int bd, int[] tl, int tl_index, int[] td, int td_index, InfBlocks s, ZStream z)
/*     */   {
/* 495 */     int p = z.next_in_index;
/* 496 */     int n = z.avail_in;
/* 497 */     int b = s.bitb;
/* 498 */     int k = s.bitk;
/* 499 */     int q = s.write;
/* 500 */     int m = q < s.read ? s.read - q - 1 : s.end - q;
/*     */     
/*     */ 
/* 503 */     int ml = inflate_mask[bl];
/* 504 */     int md = inflate_mask[bd];
/*     */     
/*     */     label1308:
/*     */     
/*     */     do
/*     */     {
/* 510 */       n--;
/* 509 */       while (k < 20)
/*     */       {
/* 511 */         b |= (z.next_in[(p++)] & 0xFF) << k;
/* 512 */         k += 8;
/*     */       }
/*     */       
/* 515 */       int t = b & ml;
/* 516 */       int[] tp = tl;
/* 517 */       int tp_index = tl_index;
/* 518 */       int tp_index_t_3 = (tp_index + t) * 3;
/* 519 */       int e; if ((e = tp[tp_index_t_3]) == 0) {
/* 520 */         b >>= tp[(tp_index_t_3 + 1)];
/* 521 */         k -= tp[(tp_index_t_3 + 1)];
/*     */         
/* 523 */         s.window[(q++)] = ((byte)tp[(tp_index_t_3 + 2)]);
/* 524 */         m--;
/*     */       }
/*     */       else
/*     */       {
/*     */         do {
/* 529 */           b >>= tp[(tp_index_t_3 + 1)];
/* 530 */           k -= tp[(tp_index_t_3 + 1)];
/*     */           
/* 532 */           if ((e & 0x10) != 0) {
/* 533 */             e &= 0xF;
/* 534 */             int c = tp[(tp_index_t_3 + 2)] + (b & inflate_mask[e]);
/*     */             
/* 536 */             b >>= e;
/* 537 */             k -= e;
/*     */             
/*     */ 
/* 540 */             while (k < 15) {
/* 541 */               n--;
/* 542 */               b |= (z.next_in[(p++)] & 0xFF) << k;
/* 543 */               k += 8;
/*     */             }
/*     */             
/* 546 */             t = b & md;
/* 547 */             tp = td;
/* 548 */             tp_index = td_index;
/* 549 */             tp_index_t_3 = (tp_index + t) * 3;
/* 550 */             e = tp[tp_index_t_3];
/*     */             
/*     */             for (;;)
/*     */             {
/* 554 */               b >>= tp[(tp_index_t_3 + 1)];
/* 555 */               k -= tp[(tp_index_t_3 + 1)];
/*     */               
/* 557 */               if ((e & 0x10) != 0)
/*     */               {
/* 559 */                 e &= 0xF;
/* 560 */                 while (k < e) {
/* 561 */                   n--;
/* 562 */                   b |= (z.next_in[(p++)] & 0xFF) << k;
/* 563 */                   k += 8;
/*     */                 }
/*     */                 
/* 566 */                 int d = tp[(tp_index_t_3 + 2)] + (b & inflate_mask[e]);
/*     */                 
/* 568 */                 b >>= e;
/* 569 */                 k -= e;
/*     */                 
/*     */ 
/* 572 */                 m -= c;
/* 573 */                 int r; if (q >= d)
/*     */                 {
/* 575 */                   int r = q - d;
/* 576 */                   if ((q - r > 0) && (2 > q - r)) {
/* 577 */                     s.window[(q++)] = s.window[(r++)];
/*     */                     
/*     */ 
/* 580 */                     s.window[(q++)] = s.window[(r++)];
/*     */                     
/*     */ 
/* 583 */                     c -= 2;
/*     */                   } else {
/* 585 */                     System.arraycopy(s.window, r, s.window, q, 
/* 586 */                       2);
/* 587 */                     q += 2;
/* 588 */                     r += 2;
/* 589 */                     c -= 2;
/*     */                   }
/*     */                 } else {
/* 592 */                   r = q - d;
/*     */                   do {
/* 594 */                     r += s.end;
/* 593 */                   } while (
/*     */                   
/* 595 */                     r < 0);
/* 596 */                   e = s.end - r;
/* 597 */                   if (c > e) {
/* 598 */                     c -= e;
/* 599 */                     if ((q - r > 0) && (e > q - r)) {
/*     */                       do {
/* 601 */                         s.window[(q++)] = s.window[(r++)];
/* 602 */                         e--; } while (e != 0);
/*     */                     } else {
/* 604 */                       System.arraycopy(s.window, r, s.window, 
/* 605 */                         q, e);
/* 606 */                       q += e;
/* 607 */                       r += e;
/* 608 */                       e = 0;
/*     */                     }
/* 610 */                     r = 0;
/*     */                   }
/*     */                 }
/*     */                 
/*     */ 
/*     */ 
/* 616 */                 if ((q - r > 0) && (c > q - r)) {
/*     */                   do {
/* 618 */                     s.window[(q++)] = s.window[(r++)];
/* 619 */                     c--; } while (c != 0);
/*     */                   break label1308; }
/* 621 */                 System.arraycopy(s.window, r, s.window, q, c);
/* 622 */                 q += c;
/* 623 */                 r += c;
/* 624 */                 c = 0;
/*     */                 break label1308;
/*     */               }
/* 627 */               if ((e & 0x40) != 0) break;
/* 628 */               t += tp[(tp_index_t_3 + 2)];
/* 629 */               t += (b & inflate_mask[e]);
/* 630 */               tp_index_t_3 = (tp_index + t) * 3;
/* 631 */               e = tp[tp_index_t_3];
/*     */             }
/* 633 */             z.msg = "invalid distance code";
/*     */             
/* 635 */             c = z.avail_in - n;
/* 636 */             c = k >> 3 < c ? k >> 3 : c;
/* 637 */             n += c;
/* 638 */             p -= c;
/* 639 */             k -= (c << 3);
/*     */             
/* 641 */             s.bitb = b;
/* 642 */             s.bitk = k;
/* 643 */             z.avail_in = n;
/* 644 */             z.total_in += p - z.next_in_index;
/* 645 */             z.next_in_index = p;
/* 646 */             s.write = q;
/*     */             
/* 648 */             return -3;
/*     */           }
/*     */           
/*     */ 
/*     */ 
/*     */ 
/* 654 */           if ((e & 0x40) != 0) break;
/* 655 */           t += tp[(tp_index_t_3 + 2)];
/* 656 */           t += (b & inflate_mask[e]);
/* 657 */           tp_index_t_3 = (tp_index + t) * 3;
/* 658 */         } while ((e = tp[tp_index_t_3]) != 0);
/*     */         
/* 660 */         b >>= tp[(tp_index_t_3 + 1)];
/* 661 */         k -= tp[(tp_index_t_3 + 1)];
/*     */         
/* 663 */         s.window[(q++)] = ((byte)tp[(tp_index_t_3 + 2)]);
/* 664 */         m--;
/* 665 */         continue;
/*     */         
/* 667 */         if ((e & 0x20) != 0)
/*     */         {
/* 669 */           int c = z.avail_in - n;
/* 670 */           c = k >> 3 < c ? k >> 3 : c;
/* 671 */           n += c;
/* 672 */           p -= c;
/* 673 */           k -= (c << 3);
/*     */           
/* 675 */           s.bitb = b;
/* 676 */           s.bitk = k;
/* 677 */           z.avail_in = n;
/* 678 */           z.total_in += p - z.next_in_index;
/* 679 */           z.next_in_index = p;
/* 680 */           s.write = q;
/*     */           
/* 682 */           return 1;
/*     */         }
/* 684 */         z.msg = "invalid literal/length code";
/*     */         
/* 686 */         int c = z.avail_in - n;
/* 687 */         c = k >> 3 < c ? k >> 3 : c;
/* 688 */         n += c;
/* 689 */         p -= c;
/* 690 */         k -= (c << 3);
/*     */         
/* 692 */         s.bitb = b;
/* 693 */         s.bitk = k;
/* 694 */         z.avail_in = n;
/* 695 */         z.total_in += p - z.next_in_index;
/* 696 */         z.next_in_index = p;
/* 697 */         s.write = q;
/*     */         
/* 699 */         return -3;
/*     */       }
/*     */       
/* 702 */     } while ((m >= 258) && (n >= 10));
/*     */     
/*     */ 
/* 705 */     int c = z.avail_in - n;
/* 706 */     c = k >> 3 < c ? k >> 3 : c;
/* 707 */     n += c;
/* 708 */     p -= c;
/* 709 */     k -= (c << 3);
/*     */     
/* 711 */     s.bitb = b;
/* 712 */     s.bitk = k;
/* 713 */     z.avail_in = n;
/* 714 */     z.total_in += p - z.next_in_index;
/* 715 */     z.next_in_index = p;
/* 716 */     s.write = q;
/*     */     
/* 718 */     return 0;
/*     */   }
/*     */ }


/* Location:              D:\Program Files\DBMS_20150813\jdbc\Dm7JdbcDriver17.jar!\com\jcraft\jzlib\InfCodes.class
 * Java compiler version: 2 (46.0)
 * JD-Core Version:       0.7.1
 */